pyinstaller打包使用tcl/tk扩展 发表于 2020-03-24 | 阅读次数: 本文字数: 1.4k | 阅读时长 ≈ 1 分钟 完整代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import tkinter as tk# from tkinter import *from PIL import Image, ImageGrab, ImageTkimport ctypes, sysif sys.getwindowsversion().major == 10: ctypes.windll.shcore.SetProcessDpiAwareness(2)def area_sel(): def getPress(event): global press_x,press_y press_x,press_y = event.x,event.y def mouseMove(event): global press_x, press_y, rectangleId fullCanvas.delete(rectangleId) rectangleId = fullCanvas.create_rectangle(press_x,press_y,event.x,event.y,width=5) def getRelease(event): global press_x, press_y, rectangleId top.withdraw() img = ImageGrab.grab((press_x, press_y,event.x,event.y)) img.show() top = tk.Toplevel() top.state('zoomed') top.overrideredirect(1) fullCanvas = tk.Canvas(top) background = ImageTk.PhotoImage(ImageGrab.grab().convert("L")) fullCanvas.create_image(0,0,anchor="nw",image=background) fullCanvas.bind('<Button-1>',getPress) fullCanvas.bind('<B1-Motion>',mouseMove) fullCanvas.bind('<ButtonRelease-1>',getRelease) fullCanvas.pack(expand="YES",fill="both") top.mainloop()root = tk.Tk()rectangleId = Nonesel_btn = tk.Button(root, text='select area', width=20, command=area_sel)sel_btn.pack()root.mainloop()